package com.zenithmind.news.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.zenithmind.common.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 新闻评论实体类
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("news_comment")
@Schema(description = "新闻评论实体")
public class NewsComment extends BaseEntity {

    /**
     * 新闻ID
     */
    @Schema(description = "新闻ID")
    private String newsId;

    /**
     * 用户ID
     */
    @Schema(description = "用户ID")
    private String userId;

    /**
     * 用户名称
     */
    @Schema(description = "用户名称")
    private String userName;

    /**
     * 用户头像
     */
    @Schema(description = "用户头像")
    private String userAvatar;

    /**
     * 父评论ID
     */
    @Schema(description = "父评论ID")
    private String parentId;

    /**
     * 根评论ID
     */
    @Schema(description = "根评论ID")
    private String rootId;

    /**
     * 回复用户ID
     */
    @Schema(description = "回复用户ID")
    private String replyUserId;

    /**
     * 回复用户名称
     */
    @Schema(description = "回复用户名称")
    private String replyUserName;

    /**
     * 评论内容
     */
    @Schema(description = "评论内容")
    private String content;

    /**
     * 评论类型（1-文本，2-图片，3-表情）
     */
    @Schema(description = "评论类型（1-文本，2-图片，3-表情）")
    private Integer type;

    /**
     * 评论状态（0-待审核，1-已发布，2-已删除，3-审核失败）
     */
    @Schema(description = "评论状态（0-待审核，1-已发布，2-已删除，3-审核失败）")
    private Integer status;

    /**
     * 点赞数
     */
    @Schema(description = "点赞数")
    private Long likeCount;

    /**
     * 回复数
     */
    @Schema(description = "回复数")
    private Long replyCount;

    /**
     * 评论层级
     */
    @Schema(description = "评论层级")
    private Integer level;

    /**
     * 评论路径
     */
    @Schema(description = "评论路径")
    private String path;

    /**
     * IP地址
     */
    @Schema(description = "IP地址")
    private String ipAddress;

    /**
     * 地理位置
     */
    @Schema(description = "地理位置")
    private String location;

    /**
     * 设备信息
     */
    @Schema(description = "设备信息")
    private String deviceInfo;

    /**
     * 是否置顶（0-否，1-是）
     */
    @Schema(description = "是否置顶（0-否，1-是）")
    private Integer isTop;

    /**
     * 是否精选（0-否，1-是）
     */
    @Schema(description = "是否精选（0-否，1-是）")
    private Integer isFeatured;

    /**
     * 排序值
     */
    @Schema(description = "排序值")
    private Integer sortOrder;
}
